package cn.com.guodiantong.ies.jedis;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import redis.clients.jedis.Jedis;

/**   
*    
* 项目名称 ：RD-TN-RECEIVE   
* 类名称 ：JcdTestReal   
* 类描述 ：   测试用链接Redis造数
* @author ：weizhenyan   
* 创建时间 ：2019年3月15日 下午5:11:28     
*/
public class JcdTestReal {

	public static void main(String[] args) {
		Jedis jd = new Jedis("192.168.25.214",6379);
//		Jedis jd = new Jedis("192.168.31.129",6379);
//		jd.auth("gdtyfb@123");
//		jd.flushAll();
		try {
			jd.connect();
			System.out.println(jd.ping());
		} catch (Exception e) {
			e.printStackTrace();
		}
//		for (int i = 0; i < 15; i++) {
//			builddata(jd,"0");
//		}
		//4.使用结束后应关闭连接，以释放资源
		jd.close();
	}

	//15分钟整时刻数据
	private static void builddata(Jedis jd,String st) {
		
		//T1478, T1483, T1484, T1485, T1486
		List<String> uid = new ArrayList<String>();
		uid.add("T001");
		uid.add("T002");
		uid.add("T007");
		uid.add("T164");
		uid.add("T170");
		uid.add("T621");
		uid.add("T1416");
		uid.add("T1478");
		uid.add("T1483");
		uid.add("T1484");
		uid.add("T1485");
		uid.add("T1486");
		uid.add("T1579");
		uid.add("T1580");
		uid.add("T1581");
		for (int i = 1602; i < 1608; ++i) {
			uid.add("T" + i);
		}
		for (int i = 1515; i < 1523; ++i) {
			uid.add("T" + i);
		}
		System.out.println();
		List<String> iid = new ArrayList<String>();
		iid.add("B001");
		iid.add("B002");
		iid.add("B003");
		iid.add("B004");
		iid.add("B037");
		iid.add("B130");
		iid.add("B131");
		iid.add("B133");
		iid.add("B146");
		//日发电量-量值
		iid.add("B200");
		//开关合闸信号
		iid.add("B226");
		iid.add("B235");
		iid.add("K155");
		iid.add("B038");
		iid.add("A156");
		iid.add("A157");
//		for (int i = 100; i < 2010; ++i) {
//			iid.add("B" + i);
//			System.out.println("B"+i);
//		}
		for (int i = 235; i < 254; ++i) {
			iid.add("B" + i);
		}
//		SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//		Timestamp time = new Timestamp(new Date().getTime());
			long time2 = System.currentTimeMillis();
		List<Long> uts = new ArrayList<Long>();
		Calendar cld = Calendar.getInstance();
		cld.clear();
		cld.set(2018, 8, 24, 14, 35, 0);
		
		uts.add(time2/ 1000);
//		for (int i = 0; i < 24 * 60 / 15; ++i) {
//			uts.add(cld.getTimeInMillis() / 1000);
//			System.out.println(cld.getTime());
//			cld.add(Calendar.MINUTE, 15);
//		}
		// init
//		if (jd.getClient().getHost().equals("localhost")) {
//			jd.flushDB();
//		} else {
//			return;
//		}
		// SET:UNIT
		/*for (String x : uid) {
			jd.sadd("SET:UNIT", x);
		}
		// SET:ITEM:UNIT_ID
		for (String x : uid) {
			for (String y : iid) {
				jd.sadd("SET:ITEM:" + x, y);
			}
		}
		// SET:ALL:LSTTIME
		for (String x : uid) {
			for (String y : iid) {
				jd.sadd("SET:ALL:LSTTIME", "LST:TIME:" + x + ":" + y);
			}
		}*/
		// LST:TIME:UNIT_ID:ITEM_ID
		for (String x : uid) {
			for (String y : iid) {
				for (Long z : uts) {
					jd.rpush("LST:TIME:" + x + ":" + y, z.toString());
//					jd.expire("LST:TIME:" + x + ":" + y, 60*60*24);
					jd.ltrim("LST:TIME:" + x + ":" + y, -10, -1);
				}
			}
		}
		// STR:DATA:UNIT_ID:ITEM_ID:TIME
		for (String x : uid) {
			for (String y : iid) {
				for (Long z : uts) {
//					jd.set("STR:DATA:" + x + ":" + y + ":" + z,st);
//					jd.expire("STR:DATA:" + x + ":" + y + ":" + z, 60*5);
					if("T001".equals(x)||"T1515".equals(x)){
						jd.set("STR:DATA:" + x + ":" + y + ":" + z,"B226".equals(y)?String.format("%.0f",  1.00):String.format("%.4f",  Math.random() * 1000));
							System.out.println("STR:DATA:" + x + ":" + y + ":" + z+":  "+jd.get("STR:DATA:" + x + ":" + y + ":" + z));
							jd.expire("STR:DATA:" + x + ":" + y + ":" + z, 60*60*24);
					}else{
						jd.set("STR:DATA:" + x + ":" + y + ":" + z,"B226".equals(y)?String.format("%.0f",  1.00):String.format("%.4f",  Math.random() * 1000));
//					jd.set("STR:DATA:" + x + ":" + y + ":" + z,y.equals("B226")?String.format("%.0f",  Math.random()):String.format("%.2f",  Math.random() * 10));
						System.out.println("STR:DATA:" + x + ":" + y + ":" + z+":  "+jd.get("STR:DATA:" + x + ":" + y + ":" + z));
						jd.expire("STR:DATA:" + x + ":" + y + ":" + z, 60*60*24);
					}
				}
			}
		}
	}

}
